//
//  YTFStatusViewModel.swift
//  sinaWeibo
//
//  Created by pro on 16/3/1.
//  Copyright © 2016年 pro. All rights reserved.
//

import UIKit
import SDWebImage
import AFNetworking

class YTFStatusViewModel: NSObject {
    //定义一个成员变量是模型类
    var statusModel: YTFStatusModel?
    
    //用户认证图像
    
    var verify_image: UIImage? {
        
        switch statusModel?.user?.verified_type ?? -1 {
            
        case -1: return nil
        case 0: return UIImage(named: "avatar_vip")
        case 2,3,5: return UIImage(named: "avatar_enterprise_vip")
        case 220: return UIImage(named: "avatar_grassroot")
            
            //必须添加默认的default
        default: return nil
 
        }
    
    }
    
    
    //等级图片
    var level_image: UIImage? {
        return UIImage(named: "common_icon_membership_level\(statusModel?.user?.mbrank ?? 0)")
    }
    
        
    //转发
    var repostString: String {
        //当转发数量为0的时候，显示“转发”
        //当不为0的时候，显示转发数
        if statusModel?.reposts_count == 0{
            return "转发"
        }else{
            if let str = statusModel?.reposts_count {
                return "\(str)"
            }
            return "转发"
        }
    }
    
    //评论
    var commentString: String {
        //当评论数量为0的时候，显示“评论”
        //当不为0的时候，显示评论数
        if statusModel?.comments_count == 0{
            return "评论"
        }else{
            if let str = statusModel?.comments_count {
                return "\(str)"
            }
            return "评论"
        }
    }
    
    //点赞
    var goodString: String {
        //当点赞数量为0的时候，显示“评论”
        //当不为0的时候，显示评论数
        if statusModel?.attitudes_count == 0{
            return "赞"
        }else{
            if let str = statusModel?.attitudes_count {
                return "\(str)"
            }
            return "赞"
        }
    }
    
    //创建时间
    func dealCreateTime(create_Time: String?) -> String?{
        
        //进行判断，createTime不能为空
        guard let createdTime = create_Time else {
            return nil
        }
        
        //执行下面代码即创建时间不为空
        // 把 Optional("Thu Mar 03 17:00:03 +0800 2016")时间转换成标准时间
        
        //实例化formatter
        let formatter = NSDateFormatter()
        
        //设置时区
        formatter.locale = NSLocale(localeIdentifier: "cn")
        
        //设置日期格式
        formatter.dateFormat = "EEE MMM dd HH:mm:ss Z yyyy"
        
        let date = formatter.dateFromString(createdTime)
        
        print(date)
        
        //获取一个当前的日历
        let calander = NSCalendar.currentCalendar()
        
        //设置要获取的比较
        let unites = NSCalendarUnit(arrayLiteral: .Year,.Month,.Day,.Hour,.Minute)
        
        //进行比较
        if let Odate = date {
            
            //比较微博发布时间和当前时间的时间差
            let component = calander.components(unites, fromDate: Odate, toDate: NSDate(), options: [])
            
//            print(component.year)
//            print(component.month)
//            print(component.day)
//            print(component.hour)
//            print(component.minute)
//            
//            formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
//            
//            let str = formatter.stringFromDate(Odate)
            
//            print(str)
            /*
            显示逻辑
            
            如果是今年
            
            是今天
            
            1分钟之内 显示 "刚刚"
            
            1小时之内 显示 "xx分钟前"
            
            其他 显示 "xx小时前"
            
            是昨天 显示 "昨天 HH:mm"
            
            其他 显示 "MM-dd HH:mm"
            
            不是今年 显示 "yyyy-MM-dd"

            */
            
//            if component.minute < 1 {
//                return "刚刚"
//            }else if component.hour < 1 {
//                return "\(component.minute)分钟前"
//            }else if component.day < 1 {
//                return "\(component.hour)小时前"
//            }else if component.day == 1 {
//                let startIdex = "yyyy-MM-dd ".endIndex
//                let endIndex = "yyyy-MM-dd HH:mm".endIndex
//                return "昨天 \(str.substringWithRange(startIdex..<endIndex))"
//            }else if component.year < 1 {
//                let startIdex = "yyyy-".endIndex
//                let endIndex = "yyyy-MM-dd HH:mm".endIndex
//                return "昨天 \(str.substringWithRange(startIdex..<endIndex))"
//            }else {
//                return str.substringToIndex("yyyy-MM-dd".endIndex)
//            }
            
            if component.year == 0{//今年
                
                if component.month == 0{//本月
                    
                    if component.day == 0{//今天
                        
                        if component.hour == 0 {//一小时之内
                            
                            if component.minute == 0{//一分钟之内
                                return "刚刚"
                            }else{//一小时之内
                                return "\(component.minute)分钟之前"
                            }
                        
                        }else{//24小时之内
                            return "\(component.hour)小时之前"
                        }
                        
                    }else if component.day == 1{//昨天
                        formatter.dateFormat = "HH:mm"
                        let str = formatter.stringFromDate(Odate)
                        return "昨天 \(str)"
                    }else {//本月其他天
                        formatter.dateFormat = "MM-dd HH:mm"
                        let str = formatter.stringFromDate(Odate)
                        return str
                    }
                    
                }else{//其他月份
                    formatter.dateFormat = "MM-dd HH:mm"
                    let str = formatter.stringFromDate(Odate)
                    return str
                }
            }else{//其他年份
                formatter.dateFormat = "yyyy-MM-dd"
                let str = formatter.stringFromDate(Odate)
                return str
            }
            
            
        }
        
        return "\(date)"
    }
    
    //微博来源
    func dealSource(sourceString: String?) -> String?{
        //进行一个判断，sourceString不能为空
        guard let source = sourceString else {
            return nil
        }
        
        //执行下面的代码就说明sourceString不为空
        //分隔字符串
        let sourceArray = source.componentsSeparatedByString(">")
        
        //一定要考虑到其他因素，即有可能没有来源的情况
        if sourceArray.count >= 2 {
            let subSource = sourceArray[1]
            
            //分隔字符串
            let fininalSourceArray = subSource.componentsSeparatedByString("<")
            
            if fininalSourceArray.count >= 1{
                return fininalSourceArray[0]
            }else{
                return nil
            }
            
        }else{
            return nil
        }
        
    }
    
    //转发微博
    var repostStatusString: String? {
        
        return statusModel?.retweeted_status?.text
        
    }
    
}
